Public Class Form1
    Dim con As New OfficeDirectory.Connecting.msAcontrol

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        ' ....................Open a connection to the database from class msAcontrol
        con.Toconnect()
        '......................qry displays data on formload in datagridview1&2
        DataGridView1.DataSource = con.ds.Tables(0)
        DataGridView2.DataSource = con.ds.Tables(0)

        '......................this refreshes data on datagridview1 on form.call procedure from refreshdata
        RefreshData()
    End Sub


    Private Sub RefreshData()
        On Error Resume Next
        Dim Rf As New OfficeDirectory.Refresh.Renew
        Rf.ToRefresh()
        'offer data in data table into datagridview
        Me.DataGridView1.DataSource = Rf.dt
        Me.DataGridView2.DataSource = Rf.dt
    End Sub


    Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        Call RefreshData()
    End Sub

    Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged
        'On Error Resume Next
        Dim MySearch As New OfficeDirectory.Find.ToFind
        MySearch.Found()
    End Sub

    Private Sub txtSearchByFname_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearchByFname.TextChanged
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        '............................Declare class as new object
        Dim srch As New OfficeDirectory.Search.ToSearch
        '...........................class function link
        srch.ToSrch()
    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        Close()
    End Sub

    Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        '..........................clear txtboxes
        Me.txtphonenumber.Clear()
        Me.txtfname.Clear()
        Me.txtlname.Clear()
        Me.txtemailaddress.Clear()
        Me.txtphoneExt.Clear()
        Me.txtdepartment.Clear()
        '..............................set focus
        Me.txtphonenumber.Focus()
    End Sub

    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
        On Error Resume Next
        If 6 = MsgBox("You about to Exit Program", MsgBoxStyle.YesNo, "Close") Then
            Close()
        Else
            '......................Do nothing
        End If
    End Sub

    Private Sub SupportToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SupportToolStripMenuItem.Click
        On Error Resume Next
        MsgBox("Bushman Programmer: Kingston Oto, Contact:+677-7246071", MsgBoxStyle.Information, "Support")
    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        '..........................button clicked without any data in txtbox, message pops up
        If txtfname.Text = "" Or txtlname.Text = "" Or txtemailaddress.Text = "" Or _
                   txtphoneExt.Text = "" Or txtdepartment.Text = "" Then
            MsgBox("TextBox cannot Be Emty.", MsgBoxStyle.Information, "User Error")
            txtphonenumber.Focus()
            Exit Sub
        End If

        '..................................................declare class as new object
        Dim MySave As New OfficeDirectory.AddRecord.Save
        '....................Namespace class save connection 
        MySave.ToSave()

        '.................Clear Textbox fields
        Me.txtphonenumber.Clear()
        Me.txtfname.Clear()
        Me.txtlname.Clear()
        Me.txtemailaddress.Clear()
        Me.txtphoneExt.Clear()
        Me.txtphoneExt.Clear()
        Me.txtdepartment.Clear()
        Me.txtphonenumber.Focus()

        '.................refresh data in the list.
        RefreshData()
        Exit Sub
    End Sub

    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        '..........................button clicked without any data in txtbox, message pops up
        If txtphonenumber.Text = "" Or txtfname.Text = "" Or txtlname.Text = "" Or txtemailaddress.Text = "" Or _
                   txtphoneExt.Text = "" Or txtdepartment.Text = "" Then
            MsgBox("TextBox cannot Be Emty.", MsgBoxStyle.Information, "User Error")
            txtphonenumber.Focus()
            Exit Sub
        End If
        '....................................................New class code link 
        Dim MyUpdate As New OfficeDirectory.Update.ToEdit
        MyUpdate.ToUpdate()
        '.................Clear Textbox fields
        Me.txtphonenumber.Clear()
        Me.txtfname.Clear()
        Me.txtlname.Clear()
        Me.txtemailaddress.Clear()
        Me.txtphoneExt.Clear()
        Me.txtdepartment.Clear()
        Me.txtphonenumber.Focus()
        '.................msgbox confirming data is Updated
        MsgBox("Contact is Updated.", MsgBoxStyle.Information, "Update")
        RefreshData()

    End Sub

    Private Sub DataGridView2_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellContentClick
        On Error Resume Next
        Me.btnUpdate.Enabled = True
        Me.btnDelete.Enabled = True
        Dim i As Integer
        i = DataGridView2.CurrentRow.Index
        Me.txtphonenumber.Text = DataGridView2.Item((0), i).Value
        Me.txtfname.Text = DataGridView2.Item((1), i).Value
        Me.txtlname.Text = DataGridView2.Item((2), i).Value
        Me.txtemailaddress.Text = DataGridView2.Item((3), i).Value
        Me.txtphoneExt.Text = DataGridView2.Item((4), i).Value
        Me.txtdepartment.Text = DataGridView2.Item((5), i).Value

        RefreshData()
    End Sub

    Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        '..........................button clicked without any data in txtbox, message pops up
        If txtphonenumber.Text = "" Or txtfname.Text = "" Or txtlname.Text = "" Or txtemailaddress.Text = "" Or _
                   txtphoneExt.Text = "" Or txtdepartment.Text = "" Then
            MsgBox("TextBox cannot Be Emty.", MsgBoxStyle.Information, "User Error")
            txtphonenumber.Focus()
            Exit Sub
        End If
        '....................opens connection to database
        Dim MyDelete As New OfficeDirectory.ReCycleBin.Delete
        If 6 = MsgBox("Contact Selected will be Deleted from Database.", MsgBoxStyle.YesNo, "Delete") Then
            MyDelete.ToDelete()
            '.................Clear Textbox fields
            Me.txtphonenumber.Text = ""
            Me.txtfname.Text = ""
            Me.txtlname.Text = ""
            Me.txtemailaddress.Text = ""
            Me.txtphoneExt.Text = ""
            Me.txtdepartment.Text = ""
            MsgBox("Contact is Deleted.", MsgBoxStyle.Exclamation, "Information")

            RefreshData()

            Exit Sub
        End If

    End Sub

    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        On Error Resume Next
        RefreshData()
    End Sub

    Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click
        On Error Resume Next
        Me.btnUpdate.Enabled = False
        Me.btnDelete.Enabled = False
        '..........................button clicked without any data in txtbox, message pops up
        If txtfname.Text = "" Or txtlname.Text = "" Or txtemailaddress.Text = "" Or _
                   txtphoneExt.Text = "" Or txtdepartment.Text = "" Then
            MsgBox("TextBox cannot Be Emty.", MsgBoxStyle.Information, "User Error")
            txtphonenumber.Focus()
            Exit Sub
        End If
        '..................................................declare class as new object
        Dim MySave As New OfficeDirectory.AddRecord.Save
        '....................Namespace class save connection 
        MySave.ToSave()

        '.................Clear Textbox fields
        Me.txtphonenumber.Clear()
        Me.txtfname.Clear()
        Me.txtlname.Clear()
        Me.txtemailaddress.Clear()
        Me.txtphoneExt.Clear()
        Me.txtphoneExt.Clear()
        Me.txtdepartment.Clear()
        Me.txtphonenumber.Focus()

        '.................refresh data in the list.
        RefreshData()
    End Sub
End Class
